package br.ufmg.ubicomp.droidguide.profile;


import br.ufmg.ubicomp.droidguide.common.DroidGuideEntity;

/*
 * The Profile to Droid Guide
 * Federal Univeristy of Minas Gerais - 2008, October 
 * Ubiquitous Computing
 * @author Eduardo Mucelli and Artur Souza
 * */

public class UserProfile extends DroidGuideEntity{
	private String name;
	private int birthyear;
	private char gender;
	private String maritalstatus;
	private boolean food;
	private boolean drink;
	private char style;
	private byte consumer;
	private byte historical;
	private byte ecological;
	private byte gastronomic;
	private byte cultural;
	private byte bohemian;
	private boolean weather;
	private boolean traffic;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
		// artursouza: These events notifications are wrong, it should be in the server side and outside the model class.
		fireEntityChangeEvent("name", name);
	}

	public int getBirthyear() {
		return birthyear;
	}

	public void setBirthyear(int birthyear) {
		this.birthyear = birthyear;
		fireEntityChangeEvent("birthyear", String.valueOf(birthyear));
	}

	public char getGender() {
		return gender;
	}

	public void setGender(char gender) {
		this.gender = gender;
		fireEntityChangeEvent("gender", String.valueOf(gender));
	}

	public String getMaritalstatus() {
		return maritalstatus;
	}

	public void setMaritalstatus(String maritalstatus) {
		this.maritalstatus = maritalstatus;
		fireEntityChangeEvent("maritalstatus", maritalstatus);
	}

	public boolean getFood() {
		return food;
	}

	public void setFood(boolean food) {
		this.food = food;
		fireEntityChangeEvent("food", String.valueOf(food));
	}

	public boolean getDrink() {
		return drink;
	}

	public void setDrink(boolean drink) {
		this.drink = drink;
		fireEntityChangeEvent("drink", String.valueOf(drink));
	}

	public char getStyle() {
		return style;
	}

	public void setStyle(char style) {
		this.style = style;
		fireEntityChangeEvent("style", String.valueOf(style));
	}

	public byte getConsumer() {
		return consumer;
	}

	public void setConsumer(byte consumer) {
		this.consumer = consumer;
		fireEntityChangeEvent("consumer", String.valueOf(consumer));
	}

	public byte getHistorical() {
		return historical;
	}

	public void setHistorical(byte historical) {
		this.historical = historical;
		fireEntityChangeEvent("historical", String.valueOf(historical));
	}

	public byte getEcological() {
		return ecological;
	}

	public void setEcological(byte ecological) {
		this.ecological = ecological;
		fireEntityChangeEvent("ecological", String.valueOf(ecological));
	}

	public byte getGastronomic() {
		return gastronomic;
	}

	public void setGastronomic(byte gastronomic) {
		this.gastronomic = gastronomic;
		fireEntityChangeEvent("gastronomic", String.valueOf(gastronomic));
	}

	public byte getCultural() {
		return cultural;
	}

	public void setCultural(byte cultural) {
		this.cultural = cultural;
		fireEntityChangeEvent("cultural", String.valueOf(cultural));
	}

	public byte getBohemian() {
		return bohemian;
	}

	public void setBohemian(byte bohemian) {
		this.bohemian = bohemian;
		fireEntityChangeEvent("bohemian", String.valueOf(bohemian));
	}

	public boolean getWeather() {
		return weather;
	}

	public void setWeather(boolean weather) {
		this.weather = weather;
		fireEntityChangeEvent("weather", String.valueOf(weather));
	}

	public boolean getTraffic() {
		return weather;
	}

	public void setTraffic(boolean traffic) {
		this.traffic = traffic;
		fireEntityChangeEvent("traffic", String.valueOf(traffic));
	}

	public String toString() {
		return this.name + " " + this.birthyear + " " + this.gender + " "
				+ this.maritalstatus + " " + this.food + " " + this.drink + " "
				+ this.style + " " + this.consumer + " " + this.historical
				+ " " + this.ecological + " " + this.gastronomic + " "
				+ this.cultural + " " + this.bohemian + " " + this.weather
				+ " " + this.traffic;
	}

	public String toStringWithLabels() {
		return "Name[" + this.name + "] BirthDate[" + this.birthyear
				+ "] Gender[" + this.gender + "] MaritalStatus["
				+ this.maritalstatus + "] Food[" + this.food + "] Drink["
				+ this.drink + "] Style[" + this.style + "] Consumer["
				+ this.consumer + "] Historical[" + this.historical
				+ "] Ecological[" + this.ecological + "] Gastronomic["
				+ this.gastronomic + "] Cultural[" + this.cultural
				+ "] Bohemian[" + this.bohemian + "] Climate[" + this.weather
				+ "] Traffic[" + this.traffic + "]";
	}

}
